package presentacion;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;

import logica.Aplicacion;
import logica.Area;
import logica.UsuarioRegistrado;
import dominio.Controlador;

@SuppressWarnings("serial")
public class CrearAreaJDialog extends JDialog {

	private final JPanel contentPanel = new JPanel();
	private JLabel nombreAreaLabel;
	private JButton crearArea;
	private JTextField jTextField_nif;
	private JLabel jLabel1;
	private JTextField jTextField_nombreArea;

	private Controlador control;

	public CrearAreaJDialog(JFrame frame) {
		super(frame);
		setTitle("Crear Area");
		initGUI();
	}

	/**
	 * Create the dialog.
	 */
	private void initGUI() {
		try {
			{
				this.setBounds(0, 0, 313, 182);
				getContentPane().setLayout(new BorderLayout());
				getContentPane().add(contentPanel, BorderLayout.CENTER);
				contentPanel.setLayout(null);
				contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
				contentPanel.setPreferredSize(new java.awt.Dimension(390, 237));
				{
					nombreAreaLabel = new JLabel();
					contentPanel.add(nombreAreaLabel);
					nombreAreaLabel.setText("Nombre de Area");
					nombreAreaLabel.setBounds(26, 17, 93, 17);
				}
				{
					jTextField_nombreArea = new JTextField();
					contentPanel.add(jTextField_nombreArea);
					jTextField_nombreArea.setBounds(165, 14, 128, 23);
				}
				{
					jLabel1 = new JLabel();
					contentPanel.add(jLabel1);
					jLabel1.setText("Nif Editor de Area");
					jLabel1.setBounds(26, 51, 127, 16);
				}
				{
					jTextField_nif = new JTextField();
					contentPanel.add(jTextField_nif);
					jTextField_nif.setBounds(165, 48, 128, 23);
				}

				{
					crearArea = new JButton();
					contentPanel.add(crearArea);
					crearArea.setText("Crear");
					crearArea.setBounds(165, 89, 128, 48);
					crearArea.addActionListener(new ActionListener() {
						@Override
						public void actionPerformed(ActionEvent evento) {
							accionCrearArea();
						}
					});
				}
			}
			this.setSize(313, 182);
			this.setLocationRelativeTo(null);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private void accionCrearArea() {

		UsuarioRegistrado usuario;

		try {

			control = Controlador.dameControlador();
			usuario = control.encontrarUsuarioRegistradoPorNif(jTextField_nif.getText());

			if (usuario == null) {
				throw new Exception("No existe una persona con ese NIF");
			}

			control.crearArea(new Area(jTextField_nombreArea.getText(), usuario));
			this.setVisible(false);

		} catch (Exception e) {
			if (Aplicacion.DEBUG) {
				e.printStackTrace();
			}
			JOptionPane.showMessageDialog(this, e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
		}

	}

}
